#pragma once

#include "Geometry.h"
#include "Camera.h"
#include "Light.h"
#include "KdTree.h"

class CScene
{
public:
	CScene(void);
	virtual ~CScene(void);

	void Init(const string& strXMLFileName);

	const vector<CGeometryPtr>& GetGeometries() const { return m_vGeometries; }
	const vector<CCameraPtr>& GetCameras() const { return m_vCameras; }
	const vector<CLightPtr>& GetLights() const { return m_vLights; }

	const CKdTree& GetKdTree() const { return m_KdTree; }

protected:
	vector<CGeometryPtr> m_vGeometries;
	vector<CCameraPtr> m_vCameras;
	vector<CLightPtr> m_vLights;

	CKdTree m_KdTree;
};

